Report generated on 10-Jul-2025 at 15:27:44 by pytest-html v3.1.1
258 tests ran in 3022.64 seconds.
(Un)check the boxes to filter the results.
237 passed, 8 skipped, 19 failed, 0 errors, 0 expected failures, 2 unexpected passes, 0 rerun| Result | Test | Duration | Links |
|---|---|---|---|
| No results found. Try to check the filters | |||
| Failed | tests/frontend/test_addon_detail.py::test_addon_detail_by_firefox_badge[Desktop] | 37.26 | Driver Log URL HTML |
|
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="0f416d64-4439-441e-9760-471123d1b342")>, base_url = 'https://addons-dev.allizom.org' variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.nondestructive def test_addon_detail_by_firefox_badge(selenium, base_url, variables): extension = variables["by_firefox_addon"] selenium.get(f"{base_url}/addon/{extension}") addon = Detail(selenium, base_url) > assert addon.by_firefox_badge.is_displayed() tests/frontend/test_addon_detail.py:66: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/details.py:112: in by_firefox_badge self.wait_for_element_to_be_displayed(self._by_firefox_badge_locator) pages/desktop/base.py:42: in wait_for_element_to_be_displayed self.wait.until(EC.visibility_of_element_located(element)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="0f416d64-4439-441e-9760-471123d1b342")>, method = <function visibility_of_element_located.<locals>._predicate at 0x106332840>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_addon_detail.py::test_experimental_addon[Desktop] | 36.41 | Driver Log URL HTML |
|
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="572e5a79-ed69-4e43-8c68-e00055e6ec96")>, base_url = 'https://addons-dev.allizom.org' variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.nondestructive def test_experimental_addon(selenium, base_url, variables): extension = variables["experimental_addon"] selenium.get(f"{base_url}/addon/{extension}") addon = Detail(selenium, base_url) > assert addon.experimental_badge.is_displayed() tests/frontend/test_addon_detail.py:93: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/details.py:142: in experimental_badge self.wait_for_element_to_be_displayed(self._experimental_badge_locator) pages/desktop/base.py:42: in wait_for_element_to_be_displayed self.wait.until(EC.visibility_of_element_located(element)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="572e5a79-ed69-4e43-8c68-e00055e6ec96")>, method = <function visibility_of_element_located.<locals>._predicate at 0x105868360>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_addon_detail.py::test_addon_with_stats_summary[Desktop] | 37.96 | Driver Log URL HTML |
|
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="03aa9526-e0fe-4fb8-abca-8188109a8bf6")>, base_url = 'https://addons-dev.allizom.org' variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.nondestructive def test_addon_with_stats_summary(selenium, base_url, variables): extension = variables["addon_with_stats"] selenium.get(f"{base_url}/addon/{extension}") addon = Detail(selenium, base_url).wait_for_page_to_load() # checks that a summary of users, reviews and star ratings are present > assert addon.stats.stats_users_count > 0 tests/frontend/test_addon_detail.py:204: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/details.py:271: in stats_users_count count = self.addon_user_stats.find_element(By.CSS_SELECTOR, "dd").text pages/desktop/frontend/details.py:266: in addon_user_stats self.wait.until(EC.visibility_of_element_located(self._stats_users_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="03aa9526-e0fe-4fb8-abca-8188109a8bf6")>, method = <function visibility_of_element_located.<locals>._predicate at 0x105852980>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_addon_detail.py::test_addon_without_stats_summary[Desktop] | 38.18 | Driver Log URL HTML |
|
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="00794ac8-d4ba-4919-b802-3a24b06ca5f7")>, base_url = 'https://addons-dev.allizom.org' variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.nondestructive def test_addon_without_stats_summary(selenium, base_url, variables): extension = variables["addon_without_stats"] selenium.get(f"{base_url}/addon/{extension}") addon = Detail(selenium, base_url).wait_for_page_to_load() > assert "No Users" in addon.stats.no_user_stats tests/frontend/test_addon_detail.py:214: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/details.py:276: in no_user_stats return self.addon_user_stats.find_element(By.CSS_SELECTOR, "dt").text pages/desktop/frontend/details.py:266: in addon_user_stats self.wait.until(EC.visibility_of_element_located(self._stats_users_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="00794ac8-d4ba-4919-b802-3a24b06ca5f7")>, method = <function visibility_of_element_located.<locals>._predicate at 0x105851d00>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_addon_detail.py::test_stats_reviews_summary_click[Desktop] | 6.47 | Driver Log URL HTML |
|
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="f0ad746a-c754-4ef4-aa52-d37e443643f1")>, base_url = 'https://addons-dev.allizom.org' variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.sanity @pytest.mark.nondestructive def test_stats_reviews_summary_click(selenium, base_url, variables): extension = variables["addon_with_stats"] selenium.get(f"{base_url}/addon/{extension}") addon = Detail(selenium, base_url).wait_for_page_to_load() > stats_review_counts = addon.stats.stats_reviews_count tests/frontend/test_addon_detail.py:225: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <pages.desktop.frontend.details.Detail.Stats object at 0x1063b3190> @property def stats_reviews_count(self): count = self.addon_reviews_stats > return int(count.text.replace(",", "")) E ValueError: invalid literal for int() with base 10: '216866 Users' pages/desktop/frontend/details.py:288: ValueError | |||
| Failed | tests/frontend/test_addon_detail.py::test_more_info_addon_size[Desktop] | 6.48 | Driver Log URL HTML |
|
self = <urllib.request.HTTPSHandler object at 0x110a6b490>, http_class = <class 'http.client.HTTPSConnection'>, req = <urllib.request.Request object at 0x110a69d50> http_conn_args = {'check_hostname': None, 'context': None}, host = 'addons-dev.allizom.org', h = <http.client.HTTPSConnection object at 0x110aabd50> def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:1348: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:1286: in request self._send_request(method, url, body, headers, encode_chunked) /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:1332: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:1281: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:1041: in _send_output self.send(msg) /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:979: in send self.connect() /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py:1458: in connect self.sock = self._context.wrap_socket(self.sock, /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ssl.py:517: in wrap_socket return self.sslsocket_class._create( /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ssl.py:1075: in _create self.do_handshake() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <ssl.SSLSocket [closed] fd=-1, family=30, type=1, proto=0>, block = False @_sslcopydoc def do_handshake(self, block=False): self._check_connected() timeout = self.gettimeout() try: if timeout == 0.0 and block: self.settimeout(None) > self._sslobj.do_handshake() E ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002) /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ssl.py:1346: SSLCertVerificationError During handling of the above exception, another exception occurred: selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="76b1d9a6-a471-41cd-b533-66826c247cea")>, base_url = 'https://addons-dev.allizom.org' variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.sanity @pytest.mark.nondestructive def test_more_info_addon_size(selenium, base_url, variables): extension = variables["detail_extension_slug"] selenium.get(f"{base_url}/addon/{extension}") addon = Detail(selenium, base_url).wait_for_page_to_load() assert addon.more_info.addon_size.is_displayed() more_info_size = addon.more_info.addon_size.text # get the file URL and read its size > file = urllib.request.urlopen(addon.addon_xpi) tests/frontend/test_addon_detail.py:383: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:216: in urlopen return opener.open(url, data, timeout) /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:519: in open response = self._open(req, data) /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:536: in _open result = self._call_chain(self.handle_open, protocol, protocol + /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:496: in _call_chain result = func(*args) /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:1391: in https_open return self.do_open(http.client.HTTPSConnection, req, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <urllib.request.HTTPSHandler object at 0x110a6b490>, http_class = <class 'http.client.HTTPSConnection'>, req = <urllib.request.Request object at 0x110a69d50> http_conn_args = {'check_hostname': None, 'context': None}, host = 'addons-dev.allizom.org', h = <http.client.HTTPSConnection object at 0x110aabd50> def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002)> /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py:1351: URLError | |||
| Failed | tests/frontend/test_extensions.py::test_browse_more_recommended_extensions[Desktop] | 17.20 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="c0e71cfe-2d05-4746-9e72-e82be6e7aa3a")> @pytest.mark.sanity @pytest.mark.nondestructive def test_browse_more_recommended_extensions(base_url, selenium): extensions = Extensions(selenium, base_url).open() extensions.shelves.recommended_addons.browse_all() assert "type=extension" in selenium.current_url search_results = Search(selenium, base_url) select = Select(search_results.filter_by_badging) assert select.first_selected_option.text == "Recommended" for result in search_results.result_list.search_results: > assert "Recommended" in result.promoted_badge_label tests/frontend/test_extensions.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/search.py:233: in promoted_badge_label self.wait.until( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="c0e71cfe-2d05-4746-9e72-e82be6e7aa3a")>, method = <function visibility_of_element_located.<locals>._predicate at 0x111815f80>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_extensions.py::test_browse_more_top_rated_extensions[Desktop] | 17.53 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="a9e7dbb0-592a-4fe4-8a5b-be4375495c60")> @pytest.mark.sanity @pytest.mark.nondestructive def test_browse_more_top_rated_extensions(base_url, selenium): extensions = Extensions(selenium, base_url).open() extensions.shelves.top_rated_addons.browse_all() assert "sort=rating&type=extension" in selenium.current_url search_results = Search(selenium, base_url) select = Select(search_results.filter_by_badging) assert select.first_selected_option.text == "Recommended" for result in search_results.result_list.search_results: > assert "Recommended" in result.promoted_badge_label tests/frontend/test_extensions.py:108: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/search.py:233: in promoted_badge_label self.wait.until( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="a9e7dbb0-592a-4fe4-8a5b-be4375495c60")>, method = <function visibility_of_element_located.<locals>._predicate at 0x110e7fec0>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_extensions.py::test_browse_more_trending_extensions[Desktop] | 17.28 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="0e57fc0a-8e28-4647-ad7a-2a7d7619bc94")> @pytest.mark.sanity @pytest.mark.nondestructive def test_browse_more_trending_extensions(base_url, selenium): extensions = Extensions(selenium, base_url).open() extensions.shelves.trending_addons.browse_all() assert "sort=hotness&type=extension" in selenium.current_url search_results = Search(selenium, base_url) select = Select(search_results.filter_by_badging) assert select.first_selected_option.text == "Recommended" for result in search_results.result_list.search_results: > assert "Recommended" in result.promoted_badge_label tests/frontend/test_extensions.py:140: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/search.py:233: in promoted_badge_label self.wait.until( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="0e57fc0a-8e28-4647-ad7a-2a7d7619bc94")>, method = <function visibility_of_element_located.<locals>._predicate at 0x110f99d00>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_home.py::test_browse_all_recommended_extensions_tc_id_c1137804[Desktop] | 6.50 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="fbe34b2e-29c7-422f-bdf8-d26a21d9f8ae")> @pytest.mark.sanity @pytest.mark.nondestructive def test_browse_all_recommended_extensions_tc_id_c1137804(base_url, selenium): page = Home(selenium, base_url).open().wait_for_page_to_load() page.recommended_extensions.browse_all() assert "type=extension" in selenium.current_url search_page = Search(selenium, base_url) for result in search_page.result_list.search_results: > assert result.recommended_badge E AttributeError: 'ResultListItems' object has no attribute 'recommended_badge' tests/frontend/test_home.py:158: AttributeError | |||
| Failed | tests/frontend/test_home.py::test_home_see_more_recommended_themes_tc_id_c95589[Desktop] | 7.28 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="8e4f9630-079b-45e8-8ea7-a854f1821581")> @pytest.mark.nondestructive def test_home_see_more_recommended_themes_tc_id_c95589(base_url, selenium): page = Home(selenium, base_url).open().wait_for_page_to_load() page.recommended_themes.browse_all() assert "type=statictheme" in selenium.current_url search_page = Search(selenium, base_url) for result in search_page.result_list.themes: > assert result.recommended_badge E AttributeError: 'ResultListItems' object has no attribute 'recommended_badge' tests/frontend/test_home.py:210: AttributeError | |||
| Failed | tests/frontend/test_home.py::test_products_footer_links_tc_id_c95105[Desktop-Browsers] | 37.66 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="e955fd22-9b28-4c7f-9f94-a954ca71d0cd")>, count = 0 link = ['https://www.mozilla.org/en-US/firefox/new/?utm_campaign=SET_DEFAULT_BROWSER', '.mzp-t-product-firefox'] @pytest.mark.parametrize( "count, link", enumerate( [ ["https://www.mozilla.org/en-US/firefox/new/?utm_campaign=SET_DEFAULT_BROWSER", ".mzp-t-product-firefox"], ["products/vpn/", ".c-sub-navigation-title"], ["relay.firefox.com/", ".Layout_logo__V4UCI"], ["monitor.mozilla", ".PublicShell_logo__vbvvO"], ["getpocket.com", ".pocket-logo"], ] ), ids=[ "Browsers", "VPN", "Relay", "Monitor", "Pocket", ], ) @pytest.mark.sanity @pytest.mark.nondestructive def test_products_footer_links_tc_id_c95105(base_url, selenium, count, link): page = Home(selenium, base_url).open().wait_for_page_to_load() page.footer.products_links[count].click() > page.wait_for_current_url(link[0]) tests/frontend/test_home.py:368: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/base.py:36: in wait_for_current_url self.wait.until( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="e955fd22-9b28-4c7f-9f94-a954ca71d0cd")>, method = <function url_contains.<locals>._predicate at 0x111d93560> message = 'The url was https://www.mozilla.org/en-US/firefox/new/?utm_content=footer-link&utm_medium=referral&utm_source=addons.mozilla.org' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: The url was https://www.mozilla.org/en-US/firefox/new/?utm_content=footer-link&utm_medium=referral&utm_source=addons.mozilla.org venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_search.py::test_top_rated_recommended_addons_tc_id_c92462[Desktop] | 17.42 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="8f41d013-756d-4b4b-a8c9-2fce1e73b682")> variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.sanity @pytest.mark.nondestructive def test_top_rated_recommended_addons_tc_id_c92462(base_url, selenium, variables): page = Home(selenium, base_url).open().wait_for_page_to_load() search_page = page.search.search_for(variables["search_term"]) # apply filters and then search again Select(search_page.filter_by_sort).select_by_visible_text("Top Rated") Select(search_page.filter_by_type).select_by_visible_text("All") Select(search_page.filter_by_badging).select_by_visible_text("Recommended") page.search.search_field.clear() page.search.search_for("") # verify if sort filter applied correctly for result in search_page.result_list.search_results: assert getattr(result, "rating") >= 3.0 # verify badge type results = search_page.result_list.search_results for result in results: > assert "Recommended" in result.promoted_badge_label tests/frontend/test_search.py:307: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/search.py:233: in promoted_badge_label self.wait.until( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="8f41d013-756d-4b4b-a8c9-2fce1e73b682")>, method = <function visibility_of_element_located.<locals>._predicate at 0x112440e00>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_search.py::test_top_rated_recommended_extensions_tc_id_c92462[Desktop] | 17.71 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="473df08c-b7b8-4fcb-88be-fbdf997009c5")> variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.nondestructive def test_top_rated_recommended_extensions_tc_id_c92462(base_url, selenium, variables): page = Home(selenium, base_url).open().wait_for_page_to_load() search_page = page.search.search_for(variables["search_term"]) # apply filters and then search again Select(search_page.filter_by_sort).select_by_visible_text("Top Rated") Select(search_page.filter_by_type).select_by_visible_text("Extension") Select(search_page.filter_by_badging).select_by_visible_text("Recommended") page.search.search_field.clear() page.search.search_for("") # verify if sort filter applied correctly for result in search_page.result_list.search_results: assert getattr(result, "rating") >= 3.0 # verify that no themes are displayed print(search_page.result_list.themes) assert len(search_page.result_list.themes) == 0 # verify badge type results = search_page.result_list.search_results for result in results: > assert "Recommended" in result.promoted_badge_label tests/frontend/test_search.py:329: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/search.py:233: in promoted_badge_label self.wait.until( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="473df08c-b7b8-4fcb-88be-fbdf997009c5")>, method = <function visibility_of_element_located.<locals>._predicate at 0x112442020>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException ------------------------------Captured stdout call------------------------------ [] | |||
| Failed | tests/frontend/test_search.py::test_top_rated_recommended_themes_tc_id_c92462[Desktop] | 6.95 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="7cc00324-9cda-446b-8e94-f4a6f4bd8abe")> variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.nondestructive def test_top_rated_recommended_themes_tc_id_c92462(base_url, selenium, variables): page = Home(selenium, base_url).open().wait_for_page_to_load() search_page = page.search.search_for(variables["search_term"]) # apply filters and then search again Select(search_page.filter_by_sort).select_by_visible_text("Top Rated") Select(search_page.filter_by_type).select_by_visible_text("Theme") Select(search_page.filter_by_badging).select_by_visible_text("Recommended") page.search.search_field.clear() page.search.search_for("") # verify if sort filter applied correctly for result in search_page.result_list.search_results: > assert getattr(result, "rating") >= 4 tests/frontend/test_search.py:344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <pages.desktop.frontend.search.Search.SearchResultList.ResultListItems object at 0x110fc3d90> @property def rating(self): """Returns the rating""" self.wait.until(EC.visibility_of_element_located(self._rating_locator)) rating = self.find_element(*self._rating_locator).get_property("title") > return float(rating.split()[1]) E ValueError: could not convert string to float: 'are' pages/desktop/frontend/search.py:194: ValueError | |||
| Failed | tests/frontend/test_search.py::test_most_users_recommended_addons_tc_id_c92462[Desktop] | 17.00 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="8851f901-6274-4fe5-b012-201a111c6cbd")> variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.nondestructive def test_most_users_recommended_addons_tc_id_c92462(base_url, selenium, variables): page = Home(selenium, base_url).open().wait_for_page_to_load() search_page = page.search.search_for("") # apply filters and then search term Select(search_page.filter_by_sort).select_by_visible_text("Most Users") Select(search_page.filter_by_type).select_by_visible_text("All") Select(search_page.filter_by_badging).select_by_visible_text("Recommended") page.search.search_for(variables["search_term"]) # verify if elements are correctly sorted results = [ getattr(result, "users") for result in search_page.result_list.search_results ] assert sorted(results, reverse=True) == results # verify badge type results = search_page.result_list.search_results for result in results: > assert "Recommended" in result.promoted_badge_label tests/frontend/test_search.py:372: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/search.py:233: in promoted_badge_label self.wait.until( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="8851f901-6274-4fe5-b012-201a111c6cbd")>, method = <function visibility_of_element_located.<locals>._predicate at 0x111d93a60>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_search.py::test_most_users_by_firefox_addons_tc_id_c92462[Desktop] | 17.35 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="92b7a5f1-ff76-4b95-a9bd-17078481dee1")> variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.nondestructive def test_most_users_by_firefox_addons_tc_id_c92462(base_url, selenium, variables): page = Home(selenium, base_url).open().wait_for_page_to_load() search_page = page.search.search_for("") # apply filters and then search term Select(search_page.filter_by_sort).select_by_visible_text("Most Users") Select(search_page.filter_by_type).select_by_visible_text("All") Select(search_page.filter_by_badging).select_by_visible_text("By Firefox") page.search.search_for(variables["search_term"]) # verify if elements are correctly sorted results = [ getattr(result, "users") for result in search_page.result_list.search_results ] assert sorted(results, reverse=True) == results # verify badge type results = search_page.result_list.search_results for result in results: > assert "By Firefox" in result.promoted_badge_label tests/frontend/test_search.py:392: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/search.py:233: in promoted_badge_label self.wait.until( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="92b7a5f1-ff76-4b95-a9bd-17078481dee1")>, method = <function visibility_of_element_located.<locals>._predicate at 0x110d6da80>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_themes.py::test_browse_more_recommended_themes[Desktop] | 16.48 | Driver Log URL HTML |
|
base_url = 'https://addons-dev.allizom.org', selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="53f226c4-2c1e-4d5a-8fb7-2c6a05940416")> @pytest.mark.sanity @pytest.mark.nondestructive def test_browse_more_recommended_themes(base_url, selenium): themes = Themes(selenium, base_url).open() themes.shelves.recommended_addons.browse_all() assert "type=statictheme" in selenium.current_url search_results = Search(selenium, base_url) select = Select(search_results.filter_by_badging) assert select.first_selected_option.text == "Recommended" for result in search_results.result_list.search_results: > assert "Recommended" in result.promoted_badge_label tests/frontend/test_themes.py:80: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages/desktop/frontend/search.py:233: in promoted_badge_label self.wait.until( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.wait.WebDriverWait (session="53f226c4-2c1e-4d5a-8fb7-2c6a05940416")>, method = <function visibility_of_element_located.<locals>._predicate at 0x11278d120>, message = '' def until(self, method, message: str = ""): """Calls the method provided with the driver as an argument until the \ return value does not evaluate to ``False``. :param method: callable(WebDriver) :param message: optional message for :exc:`TimeoutException` :returns: the result of the last call to `method` :raises: :exc:`selenium.common.exceptions.TimeoutException` if timeout occurs """ screen = None stacktrace = None end_time = time.monotonic() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.monotonic() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: E Stacktrace: E RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8 E WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:199:5 E NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:552:5 E dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16 venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py:90: TimeoutException | |||
| Failed | tests/frontend/test_versions.py::test_current_version[Desktop] | 6.00 | Driver Log URL HTML |
|
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="e69d0837-2504-4811-8159-048a582fa41d")>, base_url = 'https://addons-dev.allizom.org' variables = {'4mb_addon_slug': '4mb_addon_slug', 'addon_detail_guid': '{f2cd2fe0-0c62-40bd-8e28-2f4d7fc0ad43}', 'addon_detail_id':...dd-ons must comply with Mozilla’s Add-on Policies and are subject to manual review at any time after submission.', ...} @pytest.mark.nondestructive def test_current_version(selenium, base_url, variables): addon_url = f'addon/{variables["addon_version_install"]}/' # get info from api response = requests.get(f"{base_url}/api/v5/addons/{addon_url}") addon_version = response.json()["current_version"]["version"] addon_size = reusables.convert_bytes( response.json()["current_version"]["file"]["size"] ) api_date = response.json()["current_version"]["file"]["created"][:10] # process the date to have the same format as in frontend api_date = datetime.strptime(api_date, "%Y-%m-%d") api_processed_date = datetime.strftime(api_date, "%b %#d, %Y") # verify info displayed in page page = Versions(selenium, base_url) selenium.get(f'{base_url}/addon/{variables["addon_version_install"]}/versions/') assert page.versions_list[0].version_number == addon_version assert addon_size == page.versions_list[0].version_size > assert page.versions_list[0].released_date == api_processed_date E AssertionError: assert 'Aug 1, 2023' == 'Aug #d, 2023' E - Aug #d, 2023 E ? ^^ E + Aug 1, 2023 E ? ^ tests/frontend/test_versions.py:104: AssertionError | |||
| XPassed | tests/frontend/test_search.py::test_uppercase_has_same_suggestions_tc_id_c4491[Desktop] | 10.68 | |
|
No log output captured. | |||
| XPassed | tests/frontend/test_static_pages.py::test_about_firefox_addons_page_links[Desktop] | 39.75 | |
|
No log output captured. | |||
| Skipped | tests/frontend/test_addon_detail.py::test_stats_rating_counts_compare[Desktop] | 0.00 | |
|
('/Users/alexandru.schek/addons-release-tests/tests/frontend/test_addon_detail.py', 291, 'Skipped: unconditional skip') | |||
| Skipped | tests/frontend/test_install.py::test_install_uninstall_dictionary_tc_id_c4508[Desktop] | 0.00 | |
|
('/Users/alexandru.schek/addons-release-tests/tests/frontend/test_install.py', 121, 'Skipped: unconditional skip') | |||
| Skipped | tests/frontend/test_install.py::test_install_uninstall_langpack_tc_id_c4508[Desktop] | 0.00 | |
|
('/Users/alexandru.schek/addons-release-tests/tests/frontend/test_install.py', 157, 'Skipped: unconditional skip') | |||
| Skipped | tests/frontend/test_install.py::test_about_addons_install_extension[Desktop] | 0.00 | |
|
('/Users/alexandru.schek/addons-release-tests/tests/frontend/test_install.py', 195, 'Skipped: unconditional skip') | |||
| Skipped | tests/frontend/test_install.py::test_about_addons_install_theme[Desktop] | 0.00 | |
|
('/Users/alexandru.schek/addons-release-tests/tests/frontend/test_install.py', 231, 'Skipped: unconditional skip') | |||
| Skipped | tests/frontend/test_install.py::test_about_addons_extension_updates[Desktop] | 0.00 | |
|
('/Users/alexandru.schek/addons-release-tests/tests/frontend/test_install.py', 257, 'Skipped: unconditional skip') | |||
| Skipped | tests/frontend/test_sanity.py::test_discovery_taar_recommendations | 0.00 | |
|
('/Users/alexandru.schek/addons-release-tests/tests/frontend/test_sanity.py', 305, 'Skipped: unconditional skip') | |||
| Skipped | tests/frontend/test_search.py::test_long_terms_dont_break_suggestions[Desktop] | 0.00 | |
|
('/Users/alexandru.schek/addons-release-tests/tests/frontend/test_search.py', 88, 'Skipped: this test requires more optimization') | |||
| Passed | tests/frontend/test_addon_detail.py::test_extension_meta_card_tc_id_c392798[Desktop] | 11.78 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_detail_author_links[Desktop] | 7.37 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_addon_detail_recommended_badge[Desktop] | 7.92 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_non_promoted_addon[Desktop] | 21.99 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_invisible_addon[Desktop] | 79.98 | |
|
------------------------------Captured stdout call------------------------------ The "click continue button" event occurred. | |||
| Passed | tests/frontend/test_addon_detail.py::test_access_addon_by_guid[Desktop] | 7.82 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_access_addon_by_id[Desktop] | 7.56 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_access_addon_by_unicode_slug[Desktop] | 7.65 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_lower_firefox_incompatibility[Desktop] | 7.02 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_higher_firefox_incompatibility[Desktop] | 8.65 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_platform_incompatibility_tc_id_c4453[Desktop] | 7.37 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_stats_rating_bars_summary[Desktop] | 6.34 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_click_stats_rating_bar[Desktop] | 6.83 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_click_stats_bar_rating_counts[Desktop] | 6.78 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_click_stats_grouped_ratings[Desktop] | 6.27 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_contribute_button_tc_id_c4402[Desktop] | 7.30 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_extension_permissions_tc_id_c139966[Desktop] | 7.53 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_card_header[Desktop] | 6.37 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_support_links[Desktop-0-Homepage] | 8.11 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_support_links[Desktop-1-Support site] | 7.97 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_support_links[Desktop-2-Support Email] | 6.47 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_version_number[Desktop] | 6.63 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_addon_last_update[Desktop] | 6.43 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_related_categories[Desktop] | 11.70 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_external_license[Desktop] | 6.91 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_builtin_licenses[Desktop-Mozilla Public License 2.0] | 8.44 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_builtin_licenses[Desktop-GNU General Public License v2.0] | 9.14 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_builtin_licenses[Desktop-GNU General Public License v3.0] | 9.43 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_builtin_licenses[Desktop-GNU Lesser General Public License v2.1] | 9.38 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_builtin_licenses[Desktop-GNU Lesser General Public License v3.0] | 9.51 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_builtin_licenses[Desktop-The MIT License] | 9.27 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_builtin_licenses[Desktop-The 2-Clause BSD License] | 9.45 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_reserved_license_is_not_linkified[Desktop] | 7.84 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_custom_license[Desktop] | 7.28 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_privacy_policy[Desktop] | 7.06 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_privacy_policy_missing[Desktop] | 6.10 | |
|
------------------------------Captured stdout call------------------------------ The add-on does not have a Privacy Policy | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_eula[Desktop] | 6.62 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_eula_missing[Desktop] | 6.28 | |
|
------------------------------Captured stdout call------------------------------ The add-on does not have an End User License Agreement | |||
| Passed | tests/frontend/test_addon_detail.py::test_compare_more_info_latest_version[Desktop] | 7.43 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_info_addon_tags[Desktop] | 11.90 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_screenshot_viewer[Desktop] | 12.38 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_screenshot_ui_navigation[Desktop] | 8.82 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_screenshot_keyboard_navigation_tc_id_c4535[Desktop] | 8.84 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_add_to_collection_card[Desktop] | 8.25 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_release_notes[Desktop] | 6.83 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_more_addons_by_author_card[Desktop] | 7.45 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_click_addon_in_more_addons_by_author[Desktop] | 7.92 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_addon_description[Desktop] | 6.52 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_developer_comments[Desktop] | 6.86 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_addon_ratings_card[Desktop] | 22.97 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_addon_recommendations[Desktop] | 7.40 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_click_addon_recommendations[Desktop] | 8.46 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_theme_detail_page_tc_id_c95590[Desktop] | 6.98 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_current_theme_not_in_more_by_artist_previews[Desktop] | 7.55 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_addon_description_outgoing_urls[Desktop] | 8.00 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_addon_developer_comments_outgoing_urls[Desktop] | 7.24 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_addon_more_info_homepage_outgoing_urls[Desktop] | 7.14 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_addon_more_info_support_site_outgoing_urls[Desktop] | 6.97 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_addon_custom_license_outgoing_urls[Desktop] | 8.08 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_addon_privacy_policy_outgoing_urls[Desktop] | 8.40 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_addon_detail.py::test_addon_version_notes_outgoing_urls[Desktop] | 9.23 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_blog_homepage_header_logo_button[Desktop] | 10.87 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_articles_elements_are_displayed[Desktop] | 10.03 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_open_article_by_clicking_article_image[Desktop] | 9.62 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_open_article_by_clicking_article_title[Desktop] | 8.90 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_open_article_by_clicking_read_more_link[Desktop] | 11.14 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_article_page_loaded_correctly[Desktop] | 44.41 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_article_page_header_logo_button[Desktop] | 12.08 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_navbar_frontend_homepage_link[Desktop] | 10.64 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_navbar_blog_homepage_link[Desktop] | 9.26 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_navbar_current_article_link[Desktop] | 9.39 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_next_and_previous_article_links[Desktop] | 10.61 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_addon_cards_loaded_correctly[Desktop] | 9.47 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_blog.py::test_addon_card_recommendation_badge_link[Desktop] | 8.83 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-0-Alerts & Updates] | 7.41 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-1-Appearance] | 6.88 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-2-Bookmarks] | 6.82 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-3-Download Management] | 6.90 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-4-Feeds, News & Blogging] | 7.00 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-5-Games & Entertainment] | 7.31 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-6-Language Support] | 6.96 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-7-Other] | 6.80 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-8-Photos, Music & Videos] | 7.07 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-9-Privacy & Security] | 6.98 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-10-Search Tools] | 7.08 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-11-Shopping] | 6.81 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-12-Social & Communication] | 7.19 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-13-Tabs] | 7.11 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extensions_categories[Desktop-14-Web Development] | 6.66 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_extension_landing_header[Desktop] | 76.31 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_recommended_extensions_shelf[Desktop] | 6.75 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_top_rated_extensions[Desktop] | 6.47 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_extensions.py::test_trending_extensions[Desktop] | 6.28 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_click_header_extensions_tc_id_c95105[Desktop] | 9.44 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_click_header_themes_tc_id_c95105[Desktop] | 6.57 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_logo_routes_to_homepage_tc_id_c95105[Desktop] | 7.59 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_firefox_addons_blog_link_tc_id_c95105[Desktop] | 9.68 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_developer_hub_link_tc_id_c95105[Desktop] | 7.05 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_extension_workshop_link_tc_id_c95105[Desktop] | 7.52 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_more_dropdown_navigates_correctly_tc_id_c95103[Desktop-0-Dictionaries and Language Packs] | 11.47 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_more_dropdown_navigates_correctly_tc_id_c95103[Desktop-1-Add-ons for Firefox Android] | 11.71 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_primary_hero_tc_id_c95105[Desktop] | 8.49 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_secondary_hero_message[Desktop] | 6.48 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_secondary_hero_modules_tc_id_c95105[Desktop] | 6.34 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_click_module_link_tc_id_c95105[Desktop-0-First module] | 8.63 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_click_module_link_tc_id_c95105[Desktop-1-Second module] | 8.92 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_click_module_link_tc_id_c95105[Desktop-2-Third module] | 7.83 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_home_recommended_extensions_shelf_tc_id_c95105[Desktop] | 6.64 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_home_see_more_popular_themes_tc_id_c95589[Desktop] | 7.58 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_home_popular_themes_shelf[Desktop] | 6.53 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_home_shelf_item_rating[Desktop] | 6.84 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_home_see_more_links_tc_id_c4407[Desktop] | 14.49 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-0-Abstract] | 7.52 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-1-Nature] | 7.12 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-2-Film] | 7.19 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-3-Scenery] | 7.30 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-4-Music] | 7.20 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_theme_categories_shelf_tc_id_c95105[Desktop-5-Seasonal] | 7.31 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-About] | 23.15 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Firefox Add-ons Blog] | 10.40 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Extension Workshop] | 8.21 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Developer Hub] | 7.27 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Developer Policies] | 7.97 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Community Blog] | 9.10 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Forum] | 13.41 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Report a bug] | 8.69 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_addons_footer_links_tc_id_c95105[Desktop-Review Guide] | 6.54 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_browsers_footer_links_tc_id_c95105[Desktop-Firefox Desktop] | 7.54 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_browsers_footer_links_tc_id_c95105[Desktop-Firefox Mobile] | 8.38 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_browsers_footer_links_tc_id_c95105[Desktop-Firefox Enterprise] | 7.28 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_products_footer_links_tc_id_c95105[Desktop-VPN] | 8.16 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_products_footer_links_tc_id_c95105[Desktop-Relay] | 10.74 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_products_footer_links_tc_id_c95105[Desktop-Monitor] | 12.80 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_products_footer_links_tc_id_c95105[Desktop-Pocket] | 13.06 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_social_footer_links_tc_id_c95105[Desktop-Firefox on Twitter] | 11.96 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_social_footer_links_tc_id_c95105[Desktop-Firefox on Instagram] | 10.59 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_social_footer_links_tc_id_c95105[Desktop-Firefox on YouTube] | 8.40 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_legal_footer_links_tc_id_c95105[Desktop-Privacy] | 7.62 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_legal_footer_links_tc_id_c95105[Desktop-Cookies] | 6.93 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_legal_footer_links_tc_id_c95105[Desktop-Legal] | 7.82 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_copyright_footer_links_tc_id_c95105[Desktop-Legal] | 7.49 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_copyright_footer_links_tc_id_c95105[Desktop-Creative Commons License] | 7.68 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_home.py::test_change_language_tc_id_c95098[Desktop-HomePage French Translation] | 8.62 | |
|
------------------------------Captured stdout call------------------------------ Test present in TC: C95105,C95098 | |||
| Passed | tests/frontend/test_home.py::test_change_language_tc_id_c95098[Desktop-HomePage German Translation] | 8.23 | |
|
------------------------------Captured stdout call------------------------------ Test present in TC: C95105,C95098 | |||
| Passed | tests/frontend/test_home.py::test_change_language_tc_id_c95098[Desktop-HomePage Chinese Translation] | 8.26 | |
|
------------------------------Captured stdout call------------------------------ Test present in TC: C95105,C95098 | |||
| Passed | tests/frontend/test_home.py::test_change_language_tc_id_c95098[Desktop-HomePage Russian Translation] | 8.04 | |
|
------------------------------Captured stdout call------------------------------ Test present in TC: C95105,C95098 | |||
| Passed | tests/frontend/test_home.py::test_change_language_tc_id_c95098[Desktop-HomePage Hebrew Translation] | 8.15 | |
|
------------------------------Captured stdout call------------------------------ Test present in TC: C95105,C95098 | |||
| Passed | tests/frontend/test_install.py::test_install_uninstall_extension_tc_id_c393003[Desktop] | 9.27 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_install.py::test_enable_disable_extension[Desktop] | 10.06 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_install.py::test_install_uninstall_theme_tc_id_C95591[Desktop] | 9.82 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_ratings.py::test_rating_card_loaded_correctly[Desktop] | 6.75 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_ratings.py::test_rating_card_addon_name[Desktop] | 6.32 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_ratings.py::test_rating_card_authors[Desktop] | 7.60 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_ratings.py::test_rating_card_filled_stars[Desktop] | 5.99 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_ratings.py::test_rating_card_rating_bars[Desktop] | 9.60 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_ratings.py::test_rating_card_bar_review_counter[Desktop] | 7.27 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_ratings.py::test_rating_card_average_stars[Desktop] | 6.40 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_search_suggestion_term_is_higher_tc_id_c4481[Desktop-Flagfox] | 7.05 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_search_suggestion_term_is_higher_tc_id_c4481[Desktop-Video DownloadHelper (cas-cur)] | 7.62 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_search_suggestion_term_is_higher_tc_id_c4481[Desktop-cas-new-addon-4] | 7.05 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_search_suggestion_term_is_higher_tc_id_c4481[Desktop-Tree Style Tab] | 7.09 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_search_suggestion_term_is_higher_tc_id_c4481[Desktop-Two little birds] | 7.76 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_special_chars_dont_break_suggestions_tc_id_c4489[Desktop] | 7.31 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_esc_key_closes_suggestion_list_tc_id_c4486[Desktop] | 72.80 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_click_aside_closes_suggestion_list[Desktop] | 6.89 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_suggestions_change_by_query_tc_id_c4487[Desktop] | 8.29 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_select_result_with_enter_key_tc_id_c4484[Desktop] | 7.18 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_select_result_with_click_tc_id_c4485[Desktop] | 7.40 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_suggestion_icon_is_displayed[Desktop] | 6.03 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_recommended_icon_is_displayed[Desktop] | 6.30 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_selected_result_is_highlighted[Desktop] | 6.40 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_search_box_character_limit[Desktop] | 6.58 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_search_loads_and_navigates_to_correct_page[Desktop] | 6.37 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_blank_search_loads_results_tc_id_c97496[Desktop] | 6.83 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_search_pagination[Desktop] | 7.00 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_filter_default[Desktop] | 6.12 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_filter_by_users_tc_id_c92462[Desktop] | 6.53 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_filter_by_rating_and_hotness_tc_id_c92462[Desktop-Top Rated-addon] | 5.82 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_filter_by_rating_and_hotness_tc_id_c92462[Desktop-Trending-hotness] | 6.30 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_filter_extensions_tc_id_c92462[Desktop] | 7.30 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_filter_themes[Desktop] | 6.68 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_filter_promoted[Desktop-recommended-Recommended] | 6.54 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_filter_promoted[Desktop-line-By Firefox] | 6.54 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_search.py::test_filter_promoted[Desktop-badged-All Reviewed] | 6.12 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_static_pages.py::test_review_guidelines_page_loaded_correctly[Desktop] | 5.62 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_static_pages.py::test_about_firefox_addons_page_loaded_correctly[Desktop] | 5.62 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_static_pages.py::test_blocked_addon_page_loaded_correctly[Desktop] | 5.68 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_static_pages.py::test_blocked_addon_page_does_not_have_login_button[Desktop] | 5.21 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_static_pages.py::test_review_guidelines_page_links[Desktop] | 8.59 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_static_pages.py::test_blocked_addon_page_links[Desktop] | 9.80 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_static_pages.py::test_login_expired_page[Desktop] | 56.22 | |
|
------------------------------Captured stdout call------------------------------ The "click continue button" event occurred. | |||
| Passed | tests/frontend/test_static_pages.py::test_not_found_page[Desktop] | 11.04 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-0-Abstract] | 6.86 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-1-Causes] | 6.15 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-2-Fashion] | 6.19 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-3-Film and TV] | 6.21 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-4-Firefox] | 6.05 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-5-Foxkeh] | 6.29 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-6-Holiday] | 6.16 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-7-Music] | 6.14 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-8-Nature] | 6.64 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-9-Other] | 6.04 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-10-Scenery] | 76.32 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-11-Seasonal] | 6.63 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-12-Solid] | 6.09 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-13-Sports] | 6.32 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_categories[Desktop-14-Websites] | 6.06 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_themes_landing_header[Desktop] | 5.43 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_recommended_themes[Desktop] | 5.78 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_top_rated_themes[Desktop] | 5.65 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_browse_more_top_rated_themes[Desktop] | 6.21 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_trending_themes[Desktop] | 5.70 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_themes.py::test_browse_more_trending_themes[Desktop] | 6.00 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_header_translations[Desktop-Italiano] | 8.00 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_header_translations[Desktop-Español] | 7.14 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_header_translations[Desktop-Deutsch] | 7.14 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_header_translations[Desktop-Français] | 6.16 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_shelf_titles_translations[Desktop-Italiano] | 5.54 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_shelf_titles_translations[Desktop-Español] | 5.46 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_shelf_titles_translations[Desktop-Deutsch] | 5.96 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_shelf_titles_translations[Desktop-Français] | 5.65 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_extensions_page_translations[Desktop-Italiano] | 5.94 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_extensions_page_translations[Desktop-Español] | 6.31 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_extensions_page_translations[Desktop-Deutsch] | 6.05 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_extensions_page_translations[Desktop-Français] | 5.76 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_themes_page_translations[Desktop-Italiano] | 6.02 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_themes_page_translations[Desktop-Español] | 5.84 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_themes_page_translations[Desktop-Deutsch] | 75.61 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_translations.py::test_themes_page_translations[Desktop-Français] | 6.02 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_versions.py::test_addon_name_in_header[Desktop] | 5.87 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_versions.py::test_versions_counter[Desktop] | 5.67 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_versions.py::test_notice_message[Desktop] | 6.19 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_versions.py::test_ratings_card[Desktop] | 5.34 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_versions.py::test_license_link[Desktop] | 8.11 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_versions.py::test_version_install_warning[Desktop] | 6.74 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_versions.py::test_add_to_firefox_button[Desktop] | 7.30 | |
|
No log output captured. | |||
| Passed | tests/frontend/test_versions.py::test_version_download_file[Desktop] | 21.60 | |
|
No log output captured. | |||